/**
 * com.cnhis.his.customer.service.Bck1Service.java
 */
package com.mbmed.doctor.login.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.mbmed.doctor.commons.mapper.ModelVo;
import com.mbmed.doctor.login.bo.Bck1Bo;
import com.mbmed.doctor.login.mapper.Bck1;
import com.mbmed.doctor.login.mapper.BckSub1;

/**
 * @file  Bck1Service.java
 * @author 刘武
 * @version 0.1
 * @todo	Bck1服务操作接口
 * Copyright(C), 2013-2014
 *		 Shenzhen Coordinates Software Development Co., Ltd.
 * History
 *   	1. Date: 2014-09-28 01:39:11
 *      	Author: 刘武
 *      	Modification: this file was created
 *   	2. ...
 */
@Path("/bck1")
@Component
public class Bck1Service {
	
	private static Logger logger = Logger.getLogger(Bck1.class);
	
	@Autowired
	private Bck1Bo bck1Bo;
	
	@Context
	Request request;

	
	/**
	 * 查找所有数据库记录
     * @return type : List 返回查询操作所有符合条件的记录的VO对象集合，操作失败返回null
     */
	@GET
	@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
    public List<Bck1> getAll() throws Exception{
        List<Bck1> list = new ArrayList<Bck1>();
        return bck1Bo.getAll();        
    }
	
    /**
     * 查找符合条件的所有数据库记录
     * @param id 与数据库中主键对应的值
     * @return type :  返回查询操作所有符合条件的记录的VO对象，操作失败返回null
     * @throws Exception
     */
//	@GET
//	@Path("{id}")
//	@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
//    public Bck1 getBck1(@PathParam("id") String id) throws Exception{
//    	Bck1 bck1 = null;
//    	return bck1Bo.get(id);        
//    }
	
	
	
	
	/**
     * 查询病案手术详情
     * @param id 与数据库中主键对应的值
     * @return type :  返回查询操作所有符合条件的记录的VO对象，操作失败返回null
     * @throws Exception
     */
	@GET
	@Path("/getadvicebck1")
	@Produces({MediaType.APPLICATION_JSON})
    public ModelVo getAdviceBck1(@QueryParam("vae01") java.lang.String vae01) throws Exception{
		ModelVo modelVo = null;
		List<Bck1> list = new ArrayList<Bck1>();
		list = bck1Bo.getAdviceBck1();
		if(null!=list){
			modelVo = new ModelVo();
			modelVo.setList(list);
		}
    	return modelVo;
	}
	
	
	@GET
	@Path("/getadivdefaultbck1")
	@Produces({MediaType.APPLICATION_JSON})
    public ModelVo getAdivDefaultBck1(
    		@QueryParam("acf01") java.lang.String acf01,
    		@QueryParam("bbx01") java.lang.String bbx01
    		) throws Exception{
		ModelVo modelVo = new ModelVo();
		
		Map<String,Object> paramap = new HashMap<String,Object>();
		Map<String,Object> paramap2 = new HashMap<String,Object>();
		int acf01a = Integer.parseInt(acf01);
		int bbx01b = Integer.parseInt(bbx01);
		paramap.put("acf01", acf01a);
		paramap.put("bbx01", bbx01b);
		BckSub1 bck1 = new BckSub1();
		bck1 = bck1Bo.getAdivDefaultBck1(paramap);
		paramap2.put("bck1",bck1);
		modelVo.setMap(paramap2);
    	return modelVo;
	}
	
	
	@GET
	@Path("/getadviceexecbck1")
	@Produces({MediaType.APPLICATION_JSON})
    public ModelVo getAdviceExecBck1(
    		@QueryParam("bck01a") java.lang.String bck01a,
    		@QueryParam("bbx01") java.lang.String bbx01
    		) throws Exception{
		ModelVo modelVo = new ModelVo();
		
		Map<String,Object> paramap = new HashMap<String,Object>();
		Map<String,Object> paramap2 = new HashMap<String,Object>();
		int bck01 = Integer.parseInt(bck01a);
		int bbx01b = Integer.parseInt(bbx01);
		paramap.put("bck1", bck01);
		paramap.put("bbx01", bbx01b);
		BckSub1 bck1 = new BckSub1();
		bck1 = bck1Bo.getAdviceExecBck1(paramap);
		if(null==bck1){
			paramap.put("acf01", "2");
			bck1 = bck1Bo.getAdivDefaultBck1(paramap);
		}
		paramap2.put("bck1",bck1);
		modelVo.setMap(paramap2);
    	return modelVo;
	}
	
	
	
	/**
     * 查询卫生材料默认科室
     * @param id 与数据库中主键对应的值
     * @return type :  返回查询操作所有符合条件的记录的VO对象，操作失败返回null
     * @throws Exception
     */
	@GET
	@Path("/getadivwsbck1")
	@Produces({MediaType.APPLICATION_JSON})
    public ModelVo getAdivWsclBck1(
    		@QueryParam("acf01") java.lang.String acf01,
    		@QueryParam("bby01") java.lang.String bby01,
    		@QueryParam("bck01a") java.lang.String bck01a,
    		@QueryParam("bck01b") java.lang.String bck01b,
    		@QueryParam("flag") java.lang.String flag
    		) throws Exception{
		ModelVo modelVo = new ModelVo();
		
		Map<String,Object> paramap = new HashMap<String,Object>();
		Map<String,Object> paramap2 = new HashMap<String,Object>();
		java.lang.Byte acf01a = Byte.parseByte(acf01);
		java.lang.Integer bby01b = Integer.parseInt(bby01);
		java.lang.Integer bck01ab = Integer.parseInt(bck01a);
		java.lang.Integer bck01bb = Integer.parseInt(bck01b);
		java.lang.Byte  flagf = Byte.parseByte(flag);
		
		paramap.put("acf01", acf01a);
		paramap.put("bby01", bby01b);
		paramap.put("bck01a", bck01ab);
		paramap.put("bck01b", bck01bb);
		paramap.put("flag", flagf);
		
		String bck01 = bck1Bo.getAdivWsclBck1(paramap);
		
		BckSub1 bck2 = new BckSub1();
		
		bck2 = bck1Bo.get(bck01);
		paramap2.put("bck1", bck2);
		modelVo.setMap(paramap2);
    	return modelVo;
	}
	
	
	
	@GET
	@Path("/getzhuankebck")
	@Produces({MediaType.APPLICATION_JSON})
    public ModelVo getZhuanKeBck() throws Exception{
		ModelVo modelVo = new ModelVo();
		List<Bck1> list = new ArrayList<Bck1>();
		list = bck1Bo.getZhuanKeBck();
		modelVo.setList(list);
    	return modelVo;
	}
	
	
	/**
     * 西、成药查询默认科室
     * @param id 与数据库中主键对应的值
     * @return type :  返回查询操作所有符合条件的记录的VO对象，操作失败返回null
     * @throws Exception
     */
	@GET
	@Path("/getadvicexcbck")
	@Produces({MediaType.APPLICATION_JSON})
    public ModelVo getAdviceXcBck(
    		@QueryParam("bck01a") java.lang.String bck01a,
    		@QueryParam("bbx01") java.lang.String bbx01
    		) throws Exception{
		ModelVo modelVo = new ModelVo();
		Map<String,Object> paramap = new HashMap<String,Object>();
		paramap.put("bck01", bck01a);
		paramap.put("bbx01", bbx01);
		Bck1 bck01 = bck1Bo.getAdviceXcBck(paramap);
		
		Map<String,Object> remap = new HashMap<String,Object>();
		remap.put("bck1", bck01);
		modelVo.setMap(remap);
    	return modelVo;
	}
	
	
	
	
    /**
     * 向数据库中插入一条记录
     * @param vo 与数据库中记录对应的值对象
     * @return type : 返回插入操作是否成功
     * @throws Exception
     */
	@POST
	@Produces(MediaType.APPLICATION_JSON)
	@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
	public Bck1 saveBck1(
			@FormParam("bck01") java.lang.Integer bck01,
			@FormParam("bck02") java.lang.String bck02,
			@FormParam("bck03") java.lang.String bck03,
			@FormParam("bck04") java.lang.String bck04,
			@FormParam("abbrp") java.lang.String abbrp,
			@FormParam("abbrw") java.lang.String abbrw,
			@FormParam("bck01a") java.lang.Integer bck01a,
			@FormParam("lvlnr") java.lang.Integer lvlnr,
			@FormParam("bck09") java.lang.String bck09,
			@FormParam("bck10") java.lang.String bck10,
			@FormParam("bck11") java.lang.String bck11,
			@FormParam("aca01") java.lang.String aca01,
			@FormParam("bck13") java.lang.String bck13,
			@FormParam("aby01") java.lang.String aby01,
			@FormParam("bck15") java.util.Date bck15,
			@FormParam("bck16") java.util.Date bck16,
			@FormParam("adr01") java.lang.Integer adr01,
			@FormParam("bck18") java.lang.Byte bck18,
			@FormParam("bck19") java.math.BigDecimal bck19,
			@FormParam("bll01") java.lang.Integer bll01,
			@FormParam("abw01") java.lang.String abw01,
			@Context HttpServletResponse servletResponse
	) throws Exception {
		Bck1 bck1 = new Bck1();
		bck1.setBck01(bck01);
		bck1.setBck02(bck02);
		bck1.setBck03(bck03);
		bck1.setBck04(bck04);
		bck1.setAbbrp(abbrp);
		bck1.setAbbrw(abbrw);
		bck1.setBck01a(bck01a);
		bck1.setLvlnr(lvlnr);
		bck1.setBck09(bck09);
		bck1.setBck10(bck10);
		bck1.setBck11(bck11);
		bck1.setAca01(aca01);
		bck1.setBck13(bck13);
		bck1.setAby01(aby01);
		bck1.setBck15(bck15);
		bck1.setBck16(bck16);
		bck1.setAdr01(adr01);
		bck1.setBck18(bck18);
		bck1.setBck19(bck19);
		bck1.setBll01(bll01);
		bck1.setAbw01(abw01);

		return bck1 = bck1Bo.save(bck1);

	}
	/**
     * 删除数据库中与传入的值对象对应的记录
     * @param vo 与数据库中记录对应的值对象
     * @return type : boolean 返回删除操作是否成功
     * @throws Exception
     */
	@DELETE
	@Path("{id}")
	public boolean removeBck1(@PathParam("id") String id) throws Exception{
		if(id == null) return false;
    	return bck1Bo.remove(id);

	}
	
}
